home *** CD-ROM | disk | FTP | other *** search
- #include "timeoutwrite.h"
- #include "select.h"
- #include "error.h"
- #include "readwrite.h"
-
- int timeoutwrite(fdt,buf,len) int fdt; char *buf; int len;
- {
- fd_set wfds;
- struct timeval tv;
- int fd;
-
- tv.tv_sec = (fdt >> 10);
- tv.tv_usec = 0;
-
- fd = (fdt & 1023);
- FD_ZERO(&wfds);
- FD_SET(fd,&wfds);
-
- if (select(fd + 1,(fd_set *) 0,&wfds,(fd_set *) 0,&tv) == -1) return -1;
- if (FD_ISSET(fd,&wfds)) return write(fd,buf,len);
-
- shutdown(fd,1);
- errno = error_timeout;
- return -1;
- }
-